package io.geekidea.boot.test.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.geekidea.boot.framework.page.Paging;
import io.geekidea.boot.test.dto.CardDto;
import io.geekidea.boot.test.entity.Card;
import io.geekidea.boot.test.query.CardQuery;
import io.geekidea.boot.test.vo.CardVo;
import io.geekidea.boot.test.query.AppCardQuery;
import io.geekidea.boot.test.vo.AppCardVo;


/**
 * 卡片 服务接口
 *
 * @author geekidea
 * @since 2025-03-26
 */
public interface CardService extends IService<Card> {

    /**
     * 添加卡片
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addCard(CardDto dto);

    /**
     * 修改卡片
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updateCard(CardDto dto);

    /**
     * 删除卡片
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteCard(Long id);

    /**
     * 卡片详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    CardVo getCardById(Long id);

    /**
     * 卡片分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<CardVo> getCardPage(CardQuery query);

    /**
     * App卡片详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppCardVo getAppCardById(Long id);

    /**
     * App卡片分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppCardVo> getAppCardPage(AppCardQuery query);

}
